AMBA协议

您所在的位置:网站首页 one note合并表格 AMBA协议

AMBA协议

2024-01-02 18:57| 来源: 网络整理| 查看: 265

1.APB 2.0 1.1APB 2信号列表

这里需要区分Master和Slave的区别,Master是总机,Slave是从机,一个总机下可以有n个从机,所有的数据传输都是master来控制的,slave来回应。

这里注意PSELx信号,有n个slave,则该信号就有n个位宽,选中某一slave时就将对应得某一bit信号拉高;如有10个slave,则PSELx位宽为10,选中第5个slave时,就将第5个bit拉高。

1.2 状态图

通过PSELx和PENABLE信号的变化,使apb总线处于下面3个状态:

IDLE: PSELx和PENABLE都为0,表明master和slave之间无通信请求,因此处在该默认状态

SETUP: 当master和某一个slave之间准备进行数据传输时,会进入该状态,这时PSELx=1,PENABLE=0。意思是master选中某一个slave告诉slave我准备要和你交换数据啦,请你准备好!这个状态会保持一个时钟周期然后进入ENABLE状态

ENABLE:这个时候PENABLE拉高,master和某一slave进行数据传输,持续一个时钟周期

1.3 写操作

在此之前先放上AMBA协议规定的时序图惯例:

 下面就是写传输的时序图:

 T1~T2:这个阶段master和某一slave无交互,因此处于IDLE状态

T2:在该时刻,master准备将数据写入某一slave中,因此进入SETUP状态,同时把某一slave的PSEL信号拉高,PWRITE信号拉高,这表示master告诉某一slave:我即将要和你进行数据传输,是我把数据写到你里面,请你准备好!同时改变PADDR和PWDATA信号,这是为了在正式写数据之前满足建立时间,提前将把什么数据写入哪个地址准备好

T2~T3:保持一个时钟周期

T3:此时将PENABLE信号拉高,表示master正式把一笔数据写入某一slave之中

T3~T4:保持一个时钟周期

T4:数据传输结束,再次回到初始状态

1.4 读操作 

 T1~T2:这个阶段master和某一slave无交互,因此处于IDLE状态

T2:在该时刻,master准备从某一slave中读取数据,因此进入SETUP状态,同时把某一slave的PSEL信号拉高,PWRITE信号拉低,这表示master告诉某一slave:我即将要和你进行数据传输,是我要读你的数据,请你准备好!同时改变PADDR和PWDATA信号,这是为了在正式写数据之前满足建立时间,提前将哪的数据读出来

T2~T3:保持一个时钟周期

T3:此时将PENABLE信号拉高,表示master正式把某一slave之中的数据读出来,注意,数据在ENABLE周期末尾的时钟上升沿被采样,也就是T4时刻

T3~T4:保持一个时钟周期

T4:数据传输结束,再次回到初始状态

 通过读写操作的时序图,我们可以看到,无论是读还是写,都是两个周期。在第一个周期,PSEL为高,PENABLE为低,这个时候为data的传输做准备工作;第二个周期里,PSEL和PENABLE同时为高,进行data的传输

2.APB 3.0 

APB 3.0协议是在APB 2.0协议的基础上新加了2个信号,PREADY和PSLVERR组成的;PREADY信号是用来表示slave是否准备好的信号,PSLVERR是表示当前传输的数据是否有误

2.1写操作 2.1.1写操作,无等待(写操作,slave准备好了)

该种情况和APB2.0没有任何区别,当PENABLE拉高后,会检查PREADY是否拉高,如果拉高表示slave当前准备好了数据传输,则 总线将数据写给salve

2.1.2写操作,有等待(写操作,slave没有准备好)

如果PENABLE拉高后,发现PREADY没有拉高,则表示slave还没有准备好数据传输,这时所有信号保持不变直到PREADY拉高,将数据写入

2.2读操作 2.2.1读操作,无等待

该种情况和APB2.0没有区别,与写操作无等待类似,不再细说 

2.2.2读操作,有等待

当PENABLE拉高后,发现PREADY信号还没有拉高,表示slave还没有准备好,这时会等待直到PREADY信号拉高,在T5时刻采样数据

2.3错误反馈

PSLVERR来指示APB传输上的错误情况。读取和写入事务都可能发生错误。当PSEL,PENABLE和PREADY均为高电平时,仅在APB传输的最后一个周期内才认为PSLVERR有效,其他时间不考虑PSLVERR。

2.3.1写操作

 在前面的有等待的写操作的基础上,添加PSLVERR,也就是在T4时刻采样,发现PSEL,PENABLE和PREADY均为高电平的前提下,PSLVERR为高,说明这次数据传输有错误

2.3.2 读操作 

 

同理 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3